package com.yztctech.android11_05_alertdialog;

import android.content.DialogInterface;
import android.support.v7.app.AlertDialog;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.KeyEvent;

/**
 * 演示AlertDialog-----系统自定义版
 * 备注:
 * 1. 最简单的alertdialog使用方式
 */
public class MainActivity extends AppCompatActivity {

    private AlertDialog exitDialog;//在外部声明

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //初始化对话框
        initDialog();
    }

    //监听系统按键
    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) {
        if (keyCode == KeyEvent.KEYCODE_BACK) { //按了返回键
            //显示对话框
            exitDialog.show();
            return true;//---------->返回true 截取到;表示消费掉了该事件
        }
        return super.onKeyDown(keyCode, event);//------>虽然不是else下的，但是，因为if内部有return，此处相当于在else下，同时保证的整个函数有出口
    }

    private void initDialog() {//==========>三部1、创建builder2、设置builder3、用builder创建dialog
        //实例化AlertDialog.Builder对象---------》自己不能创建，需要借助builder创建dialog对象=======》为什么这么做呢？有什么好处？好像一个模板，这么干的话，一个builder能create好多
        AlertDialog.Builder builder = new AlertDialog.Builder(this);//AlertDialog.Builder 因为AlertDialog的包已经导入了，所以AlertDialog.Builder的方式就不用导入AlertDialog下的Builder包，有点怪，但是可以理解
        //设置对话框相关信息（标题、内容、按钮)=========//====================》链式调用
        builder
                .setIcon(R.mipmap.ic_launcher) //设置图标
                .setTitle("温馨提示")  //设置标题
                .setMessage("是否退出")  //设置内容
                .setCancelable(false) //设置点击对话框之外区域取消或关闭
                //设置确定按钮  ----阳性按钮 不同的操作系统在不同的 位置，内部的功能可以自己定义，这个只是位置而已
                .setPositiveButton("确定", new DialogInterface.OnClickListener() {
                    //添加按钮1
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        // 退出应用--------------》如果不是在首页的话，finish方法，是退到上一级，使用finishall()方法可以全部退出
                        finish();
						
                    }
                })
                //设置取消按钮
                .setNegativeButton("取消", null)//默认的就是取消 不用监听器
                //设置中立按钮
                .setNeutralButton("中立", null);//没啥用 先放着
        //通过Builder对象，创建对话框对象
        exitDialog = builder.create();
    }

}
